Apparatus, system and method of call notifications to active communication devices

ABSTRACT

An apparatus, system and method for call notifications to active communication devices are provided. At an apparatus comprising a processor and a communication interface, a call for a first device is received via the communication interface. When is determined that a second device is active, a notification of the call is transmitted to the second device.

FIELD

The specification relates generally to communication devices, andspecifically to an apparatus, system and method of call notifications toactive communication devices.

BACKGROUND

The evolution of computers is currently quite active in thecommunication device environment. It is now well-known to includecalendaring, contacts, and messaging functions in communication devices.More recently, there has been a veritable explosion of the number andtype of applications that are configured to the unique form factors andcomputing environments of communication devices.

BRIEF DESCRIPTIONS OF THE DRAWINGS

For a better understanding of the various implementations describedherein and to show more clearly how they may be carried into effect,reference will now be made, by way of example only, to the accompanyingdrawings in which:

FIG. 1 depicts a system for call notifications to active communicationdevices, according to non-limiting implementations.

FIG. 2 depicts an apparatus for call notifications to activecommunication devices, according to non-limiting implementations.

FIG. 3 depicts a device for receiving call notifications, according tonon-limiting implementations.

FIG. 4 depicts another device for receiving call notifications,according to non-limiting implementations.

FIG. 5 depicts a method for call notifications to active communicationdevices, according to non-limiting implementations.

FIG. 6 depicts a system for call notifications to active communicationdevices, according to non-limiting implementations.

FIG. 7 depicts a system for call notifications to active communicationdevices, according to non-limiting implementations.

FIG. 8 depicts a system for call notifications to active communicationdevices, according to non-limiting implementations.

FIG. 9 depicts a graphic user interface at the device of FIG. 3displayed when a call notification is received, according tonon-limiting implementations.

FIG. 10 depicts a system for call notifications to active communicationdevices, according to non-limiting implementations.

FIG. 11 depicts a method for call notifications to active communicationdevices, according to non-limiting implementations.

FIG. 12 depicts a system for call notifications to active communicationdevices, according to non-limiting implementations.

FIG. 13 depicts a system for call notifications to active communicationdevices, according to non-limiting implementations.

DETAILED DESCRIPTION

An aspect of the specification provides an apparatus comprising: aprocessor and a communication interface, the processor enabled to:receive a call for a first device via the communication interface;determine that a second device is active; and transmit a notification ofthe call to the second device.

The processor can be further enabled to determine that the second deviceis active by receiving an indication of activity from one or more of thesecond device and a server enabled to communicate with the first deviceand the second device. The indication of activity can comprise one ormore of: active typing data, motion sensor data, presence data, andhuman-machine interface data.

The processor can be further enabled to determine that the second deviceis active by transmitting a query to the second device and receiving aresponse thereto. The query can comprise a request for capabilities ofthe second device and the processor can be further enabled to transmitthe notification of the call to the second device when the response isindicative that the second device is capable of processing the call.

The processor can be further enabled to: determine that the seconddevice is both active and capable of handling the call; and, transmitthe notification of the call to the second device when the second deviceis both active and capable of handling the call.

The notification can be enabled to trigger a selectable option displayedat the second device for transferring the call to the second device.

The processor can be further enabled to: place the call on hold; andtransmit a second notification to a calling device, the secondnotification indicative of one or more of instructions for waiting and await period for answering the call.

The apparatus can further comprise the first device.

The apparatus can further comprise a server enabled to: communicate withthe first device and the second device; and, transfer the call to one ormore of the first device and the second device.

Another aspect of the specification provides a method comprising: at anapparatus comprising a processor and a communication interface,receiving a call for a first device via the communication interface;determining, at the processor, that a second device is active; andtransmitting a notification of the call to the second device.

The method can further comprise determining that the second device isactive by receiving an indication of activity from one or more of thesecond device and a server enabled to communicate with the first deviceand the second device.

The indication of activity can comprise one or more of: active typingdata, motion sensor data, presence data, and human-machine interfacedata.

The method can further comprise determining that the second device isactive by transmitting a query to the second device and receiving aresponse thereto. The query can comprise a request for capabilities ofthe second device and the method can further comprise transmitting thenotification of the call to the second device when the response isindicative that the second device is capable of processing the call.

The method can further comprise: determining that the second device isboth active and capable of handling the call; and, transmitting thenotification of the call to the second device when the second device isboth active and capable of handling the call.

The notification can be enabled to trigger a selectable option displayedat the second device for transferring the call to the second device.

The method can further comprise: placing the call on hold; andtransmitting a second notification to a calling device, the secondnotification indicative of one or more of instructions for waiting and await period for answering the call.

The method can further comprise: communicating with the first device andthe second device; and, transferring the call to one or more of thefirst device and the second device.

Yet a further aspect of the specification provides a computer programproduct, comprising a computer usable medium having a computer readableprogram code adapted to be executed to implement a method comprising: atan apparatus comprising a processor and a communication interface,receiving a call for a first device via the communication interface;determining, at the processor, that a second device is active; andtransmitting a notification of the call to the second device. Thecomputer program product can be non-transitory.

FIG. 1 depicts a system 100 for transmitting call notifications toactive devices, according to non-limiting implementations. System 100comprises a communication device 101 enabled to communicate with atleast one of a plurality of communication devices 103-1, 103-2, 103-3,via link 106, a communication network 107, and respective links 108-1,108-2, 108-3. Communication device 101 will be also referred tohereafter as device 101. This convention will be used elsewhere in thepresent specification. Devices 103-1, 103-2, 103-3 will also be referredto hereafter generically as a device 103, and collectively as devices103. Furthermore, links 108-1, 108-2, 108-3 will also be referred tohereafter generically as a link 108, and collectively as links 108.Communications network 107 will also be referred to hereafter as network107. It is further appreciated that at least one of devices 103 isgenerally enabled to: receive a call, for example from device 101;determine that a second device 103 is active; and transmit anotification of the call to the second device 103. It is furtherappreciated that the notification can be transmitted only when thesecond device 103 is active, and the notification is not transmittedwhen the second device 103 is inactive.

Device 101 can be any type of electronic device that can be used in aself-contained manner to make calls, for example audio calls, videocalls, and the like to one or more of devices 103.

Further, any suitable calls are within the scope of presentimplementations, including, but not limited to, telephone calls, audiocalls, video calls, video chats, PSTN (public switch telephone network)calls, packet based calls, and the like.

It is hence appreciated that device 101 comprises any suitablecommunication device for communicating with devices 103 including butnot limited to any suitable combination of computing devices, personalcomputers, laptop computers, portable electronic devices, mobilecomputing device, portable computing devices, tablet computing devices,laptop computing devices, desktop phones, telephones, PDAs (personaldigital assistants), cellphones, smartphones, “smart televisions” andthe like. Other suitable communication devices are within the scope ofpresent implementations.

Each of devices 103 can be any type of electronic device that can beused in a self-contained manner to interact with a communicationsnetwork, including but not limited to network 107, via a respective link108. It is hence appreciated that each device 103 comprises any suitablecommunication device for communicating with network 107, device 101,and, in some implementations, other devices 103. Each device 103 caninclude, but is not limited to, any suitable combination of computingdevices, personal computers, laptop computers, portable electronicdevices, mobile computing device, portable computing devices, tabletcomputing devices, laptop computing devices, desktop phones, telephones,PDAs (personal digital assistants), cellphones, smartphones” smarttelevisions” and the like. Other suitable communication devices arewithin the scope of present implementations.

Further, while three devices 103 are depicted in FIG. 1, it isappreciated that system 100 can comprise any suitable number ofcommunication devices. It is further appreciated that devices 103 can beassociated. For example, each of devices 103 can be associated with auser thereof, and hence be associated with one another, for example viaa technical association, a database, a list, association data and thelike, as will be described below. However, in other implementationsassociation of devices 103 can be via any suitable association; forexample each of devices 103 can be a device associated with a corporateentity, including but not limited to a call centre. Hence, devices 103could be associated with multiple users but within a corporate entity,or the like. Indeed, the association between devices 103 is appreciatedto be via a technical association, a database, a list, association dataand the like, as will be described below, without necessarily specifyingthe user, corporate entity or the like in the association. Further, atleast one of devices 103 can be enabled to determine whether other ofassociated devices 103 are active. In some implementations, at least oneof devices 103 can be enabled to determine capabilities of other devices103 and further whether another of devices 103 is capable of processinga given call, as will presently be described.

Each link 106, 108 comprises any suitable link with network 107,including any suitable combination of wired and/or wireless links, wiredand/or wireless devices and/or wired and/or wireless networks, includingbut not limited to any suitable combination of USB (universal serialbus) cables, serial cables, wireless links, cell-phone links, cellularnetwork links (including but not limited to 2G, 2.5G, 3G, 4G+, and thelike) wireless data, Bluetooth links, NFC (near field communication)links, Wi-Fi links, WiMax links, HDMI (High-Definition MultimediaInterface), packet based links, the Internet, analog networks, the PSTN(public switched telephone network), access points, and the like, and/ora combination.

Network 107 can comprise any suitable network and/or combination ofnetworks for conveying a call, including but not limited to audio callsand video calls, between device 101 and one or more of devices 103.Hence, network 107 can comprise any suitable combination of wirednetworks, wireless networks, cell-phone networks, cellular networknetworks (including but not limited to 2G, 2.5G, 3G, 4G+, and the like),Bluetooth networks, NFC (near field communication) networks, WiFinetworks, WiMax networks, packet based networks, the Internet, analognetworks, the PSTN (public switched telephone network), access points,and the like.

Attention is directed to FIG. 2, which depicts a schematic diagram of adevice 103-1 according to non-limiting implementations. It should beemphasized that the structure in FIG. 2 is purely exemplary, andcontemplates a device that can be used for both wireless voice (e.g.telephony), video and wireless data communications (e.g. email, webbrowsing, text, and the like). Device 103-1 comprises at least one inputdevice 200 generally enabled to receive input data, and can comprise anysuitable combination of input devices, including but not limited to akeyboard, a keypad, a pointing device, a mouse, a track wheel, atrackball, a touchpad, a touch screen and the like. Other suitable inputdevices are within the scope of present implementations.

Input from input device 200 is received at processor 208 (which can beimplemented as a plurality of processors). Processor 208 is configuredto communicate with a non-volatile storage unit 212 (e.g. ErasableElectronic Programmable Read Only Memory (“EEPROM”), Flash Memory) and avolatile storage unit 216 (e.g. random access memory (“RAM”)).Programming instructions 217 that implement the functional teachings ofdevice 103-1 as described herein are typically maintained, persistently,in non-volatile storage unit 212 and used by processor 208 which makesappropriate utilization of volatile storage 216 during the execution ofsuch programming instructions. In some implementations, processor 208can comprise at least a portion of non-volatile storage unit 212, forexample as on-board Random Access Memory (RAM). Those skilled in the artwill now recognize that non-volatile storage unit 212 and volatilestorage 216 are examples of computer readable media that can storeprogramming instructions executable on processor 208. Furthermore,non-volatile storage unit 212 and volatile storage 216 are also examplesof memory units and/or memory modules.

Non-volatile storage unit 212 can further store data 218 comprisingnetwork identifiers of devices 103 with which device 103-1 isassociated, for example devices 103-2, 103-3. Data 218 can include, butis not limited to, any suitable combination of association data, a database, a list of associated devices 103, and the like. Data 218 can begenerated when another device 103 is first associated with device 103-1,and then updated whenever further devices 103 are associated ordisassociated with device 103-1. In other words, device 103-1 is enabledto process data 218 to transmit messages, queries and the like todevices 103 whose network identifiers are stored at data 218. In someimplementations, data 218 can be used to exchange P2P (peer to peer)data and/or messages with devices 103 whose network identifiers arestored at data 218. In example implementations, it is assumed that data218 stores network identifiers of devices 103-2, 103-3 and hence,devices 103-2, 103-3 have been previously associated with device 103-1in any suitable manner.

Processor 208 in turn can also be configured to communicate with adisplay 224, a microphone 22, a speaker 229, and optionally a videocamera 230. Display 224 comprises any suitable one of or combination ofCRT (cathode ray tube) and/or flat panel displays (e.g. LCD (liquidcrystal display), plasma, OLED (organic light emitting diode),capacitive or resistive touchscreens, and the like). In particular,display 224 can be enabled to display video data received from device101 during a video call

Microphone 226 comprises any suitable microphone and/or microphone inputfor receiving sound data, which can be transmitted to device 101 in oneor more of an audio call and a video call. Speaker 229 comprises anysuitable speaker for providing sound data at device 103-1, including butnot limited to sound data received from device 101 in one or more of anaudio call and a video call. Video camera 203, when present, cancomprise any suitable video camera for receiving video data which can betransmitted to device 101 in a video call and/or video chat, and thelike. It is appreciated that microphone 226, speaker 229 and videocamera 230 can be used in combination at device 103-1 to conduct one ormore of an audio call and a video call, for example with device 101.

In some implementations, input device 200, display 224, microphone 226,speaker 229, and/or video camera 230 are external to device 103-1, withprocessor 208 in communication with each of input device 200, display224, microphone 226, speaker 229, and/or video camera 230 via a suitableconnection and/or link.

Processor 208 also connects to a network communication interface 228,also referred to hereafter as interface 228, which can be implemented asone or more radios, and/or one or more network interface cards and/ornetwork adapters configured to communicate over link 108-1. In general,it will be understood that interface 228 is configured to correspondwith the network architecture that is used to implement link 108-1. Inother implementations a plurality of links with different protocols canbe employed and thus interface 228 can comprise a plurality ofinterfaces to support each link.

It is further appreciated that device 103-1 can be enabled to determineactivity at device 103-1; determining activity can include, but is notlimited to, determining whether input device 103-1 is in use (forexample by determining one or of whether input data is being received atinput device 200, typing activity and the like), determining whether anoptional motion sensor 231 has detected motion at device 103-1. Motionsensor 231 can comprise any suitable motion sensor, including, but notlimited to, any suitable combination of accelerometers, motiondetectors, infrared sensors, and the like. In some implementations,activity can be detected via video camera 230 (e.g. when motion isdetected within a field of view of video camera 230; in someimplementations, activity is detected when video data received at videocamera 230 meets an activity condition, for example detection of auser's face in the field of view of the video camera and the like). Inyet further implementations, activity can be detected via microphone 226(e.g. when sound data is received at microphone 226; in someimplementations, activity is detected when sound data received atmicrophone 226 is above a suitable given threshold that is higher thanbackground noise, such that background noise is filtered).

It is further appreciated that device 103-1 can comprise one or morenotification devices, including but not limited to display 224, speaker229, and any other suitable notification device (e.g. lights, LEDs(light emitting diodes), vibration devices, haptic devices and the like(not depicted)).

Indeed, it should be understood that in general a wide variety ofconfigurations for device 103-1 are contemplated.

Attention is next directed to FIG. 3, which depicts a schematic diagramof device 103-2 according to non-limiting implementations. It isappreciated that device 103-2 can be substantially similar to, ordifferent from, device 103-1. In any event, FIG. 3 is substantiallysimilar to FIG. 2, with like elements having like numbers, howeverpreceded by a “3” rather than a “2”; for example, processor 308 issubstantially similar to processor 208. Specifically, device 103-2comprises input device 300, processor 308, non-volatile storage unit 312storing programming instructions 317, volatile storage unit 316, display324, microphone 326, optional video camera 330, interface 328 andspeaker 329, optional motion detector 331, and any suitable notificationdevice. Further non-volatile storage unit 312 stores data 318, similarto data 218, but storing network identifiers of devices 103-1, 103-3.Hence, device 103-2 was previously associated with devices 103-1, 103-3in any suitable manner.

Attention is next directed to FIG. 4, which depicts a schematic diagramof device 103-3 according to non-limiting implementations. It isappreciated that device 103-3 can be substantially similar to, ordifferent from, device 103-1. In any event, FIG. 4 is substantiallysimilar to FIG. 2, with like elements having like numbers, howeverpreceded by a “4” rather than a “2”; for example, processor 408 issubstantially similar to processor 208. Specifically, device 103-3comprises input device 400, processor 408, non-volatile storage unit 412storing programming instructions 417, volatile storage unit 416, display424, microphone 426, optional video camera 430, speaker 429, interface428, an optional motion sensor 431, and any suitable notificationdevice. Further non-volatile storage unit 412 stores data 418, similarto data 218, but storing network identifiers of devices 103-1, 103-2.Hence, device 103-3 was previously associated with devices 103-1, 103-2in any suitable manner.

Returning to FIG. 1, is further appreciated that while device 103-1 isdepicted as a tablet device, device 103-2 is depicted as a mobilecommunication device (such as a smartphone, PDA and the like) and device103-3 is depicted as a desktop phone and/or house phone, presentimplementations are not so limited. Rather, it is appreciated that FIG.1 is an example only and that each of devices 103-1, 103-2, 103-3 cancomprise any suitable communication device as described above.

It is yet further appreciated that, devices 103 can each be associatedwith a given user, for example, one of devices 103 comprising the givenuser's tablet device (e.g. device 103-1), one of devices 103 comprisingthe given user's mobile communication device (e.g. device 103-2) and oneof devices 103 comprising the given user's desk telephone and/or hometelephone (e.g. device 103-2).

Further data indicative of the association can be stored at one or moreof devices 103 (e.g. data 218, 318, 418) and/or at a network device,such as a server (not depicted, but see server 107 b of FIG. 13).

It is yet further appreciated that a call from device 101 can bereceived at one of devices 103, such as device 103-1, while another ofdevices 103 are active, such as one or more of devices 103-2, 103-3,described in further detail below.

Attention is now directed to FIG. 5 which depicts a flowchartillustrating a method 500 of call notifications to active communicationdevices, according to non-limiting implementations. In order to assistin the explanation of method 500, it will be assumed that method 500 isperformed using device 103-1. Furthermore, the following discussion ofmethod 500 will lead to a further understanding of device 103-1 and itsvarious components. However, it is to be understood that device 103-1and/or method 500 can be varied, and need not work exactly as discussedherein in conjunction with each other, and that such variations arewithin the scope of present implementations. It is appreciated that, insome implementations, method 500 is implemented in device 103-1 byprocessor 208.

It is to be emphasized, however, that method 500 need not be performedin the exact sequence as shown, unless otherwise indicated; and likewisevarious blocks may be performed in parallel rather than in sequence;hence the elements of method 500 are referred to herein as “blocks”rather than “steps”. It is also to be understood that method 500 can beimplemented on variations of device 103-1 as well, for example either ofdevices 103-2, 103-3.

Further, method 500 is described with reference to FIGS. 6, 7, 8 and 10,each of which are substantially similar to FIG. 1, with like elementshaving like numbers.

At block 501, a call is received at first device 103-1, for example viainterface 228. For example, with reference to FIG. 6, device 101 isgenerally enabled to initiate a call 601, for example one or more of avoice call and video call, to device 103-1 via network 107, for exampleby transmitting call initiation data to one or more switching elements,such one or more switching servers, in network 107. The call initiationdata can include, but is not limited to, an identifier of device 103-1,a virtual number associated with a switching server (which in turnforwards the call initiation data to device 103-1), and the like. Ingeneral, device 101 will transmit call initiation data over link 106, tonetwork 107, where the call is in turn conveyed to device 103-1 via link108-1.

It is appreciated that when call 601 is received at device 103-1, device103-1 can optionally provide a notification of call 601, including butnot limited to audio notifications, visual notifications, vibratorynotifications and the like.

At an optional block 503, processor 208 determines whether device 103-1is active. For example, a determination of whether device 103-1 isactive can include, but is not limited to, call 501 being answered atdevice 103-1 (such that audio data, video data and the like can beexchanged between devices 101, 103-1) an indication of activity at inputdevice 200, a detection of motion via one or more of microphone 226,video camera 230, and/or motion sensor 231. When activity is detected,method 500 ends at block 504 (i.e. a “Yes” decision at block 503).Otherwise, processor 208 determines that device 103-1 is inactive (i.e.a “No” decision at block 503). A determination of inactive can occurwhen one or more of: call 601 is unanswered at device 103-1 within agiven period of time and/or after a given number of notifications and/or“rings”; and no activity is detected via one or more of microphone 226,video camera 230 and/or motion sensor 231.

However, it is appreciated that, in other implementations, block 503does not occur and the remaining blocks of method 500 occur whetherdevice 103-1 is active or inactive.

In any event, at block 505, processor 208 determines that a seconddevice 103 is active. For example, in some implementations, and withreference to FIG. 7, device 103-1 can transmit a query 701 to devices103-2, 103-3 by processing data 218 to determine network identifiers ofdevices 103-2, 103-3; query 701 is generally transmitted via network107, to determine activity at devices 103-2, 103-3. Devices 103-2, 103-3respond to query 701 with respective data 703, 704 transmitted to device103-1 via network 107, data 703, 704 respectively indicative of activityat devices 103-2, 103-3.

It is further appreciated that each of devices 103-2, 103-3 can make adetermination of activity using respective motion sensors 331, 431,input devices 300, 400, video cameras 330, 430 and/or microphones 326,426, as described above with reference to device 103-1.

In any event respective data 703, 704 is indicative of whether or not arespective device 103-2, 103-3 is active. In other words, assumingdevice 103-2 is active, processor 208 can be enabled to determine thatsecond device 103-2 is active by transmitting a query 701 to seconddevice 103-2 and receiving a response (i.e. data 703) thereto.

In some implementations, when a given device is not active (i.e.inactive), no response to query 701 is transmitted. For example, againwith reference to FIG. 7, assuming device 103-2 is active (e.g. a user712 is using device 103-2 and/or activity determined as describedabove), and device 103-3 is inactive, data 703 is transmitted but data704 is not transmitted. Indeed, in FIG. 7, it is assumed in anon-limiting example that device 103-3 is inactive and hence data 704 isoptional.

In some implementations query 701 and data 703, 704 can be transmittedover a P2P (peer to peer) protocol, and hence determining whetherdevices 103-2, 103-3 are active or inactive can occur relatively in“real-time”.

In yet further implementations, query 701 itself can be optional andwhenever a change in activity occurs at a given device 103-2, 103-3,respective data 703, 704 are automatically transmitted to device 103-1.In yet further implementations, data 703, 704 are automaticallytransmitted periodically. Hence, device 103-1 is always aware of whethera given device 103 is active or inactive and hence determining whetherdevices 103-2, 103-3 are active or inactive can occur relatively in“real-time”.

It is further appreciated that an automatic exchange of activity data,similar to data 703, 704, can occur between devices 103, such that eachdevice 103 stores activity data of each other device 103 that isgenerally current and/or in “real-time”. In other words, presence dataassociated with user 712 can be exchanged between devices 103, such thateach device 103 stores data associated with a presence of user 712 atother devices 103.

In any event, returning to FIG. 5, at block 505, device 103-1 determinesthat second device 103-2 is active by processing data 703, regardless ofhow data 703 is obtained. Indeed, it is appreciated that data 703 canhave been received prior to device 103-1 receiving call 601 (and stored,for example at data 218), such as in implementations where devices 103exchange activity data periodically and/or when changes in activityoccur at a given device. It is further appreciated that such exchangesof activity data can occur on a P2P network and/or on a P2P protocol.

In yet further implementations, a server in network 107 receives andstores activity data from devices 103 and transmits the activity toother devices 103. For example, see server 107 b of FIG. 13 describedbelow.

In other words, processor 208 is enabled to determine that second device103-2 is active by receiving an indication of activity (i.e. data 703)from one or more of a second device 103-2 and a server enabled tocommunicate with first device 103-1 and second device 103-2.

Hence, it is yet further appreciated that, a device 103 can bedetermined to be active when device 103 is in use by a user asdetermined by one or more of an activity at input device and/or activitydetected by one or more of a motion sensor, a video camera, a microphoneand the like, as described above.

In other words a device 103 is determined to be active not simply byvirtue of a device 103 being on and able to respond to queries, messagesand the like. Rather a device 103 is determined to be active whenactivity is detected, for example at human-machine interfaces of adevice 103, including but not limited to one or more of an input device,a motion sensor, a video camera, a microphone and the like, as describedabove. Alternatively, a device 103 is determined to be active via othertypes of activity at device 103 that do not involve a human-machineinterface; for example, activity can be detected via a light sensor,sensing a cable being received (i.e. plugged in) at a communicationinterface (such as interface 328), and/or that data is traversing one ormore of a cable and a communication interface. Either way, data 703 cancomprise data indicative of activity at device 103-2, hence device 103-1can determine that device 103-2 is active when data 703 is indicative ofactivity at device 103-2.

It is yet further appreciated that when device 103-1 receives data 703,704, device 103-1 can determine which device 103 of a plurality ofdevices 103 is active. For example, each of data 703, 704 can indicatethat respective devices 103-2, 103-3 are active. Hence, when more thanone device 103 is active (for example user 712 might be using device103-2 and a colleague and/or family member might be using device 103-3),one of the plurality of active devices 103 can be given a prioritybased, for example, of a position of respective network identifier indata 218 (e.g. see Table 1, described below); however any other mannerof determining priority is within the scope of present implementations.In some implementation, device 103-2 can be assigned priority overdevice 103-3 as device 103-2 (e.g. a mobile communication device) ismore likely to be used by user 712 associated with devices 103, than ahouse phone such as device 103-3.

In yet further implementations, priority of devices 103 can be dynamicsuch that a device 103 that is more active than other devices 103 in agiven period of time is automatically given priority in data 218.

At block 507, and with reference to FIG. 8, device 103-1 transmits anotification 801 of call 601 to second device 103-2 via network 107. Forexample, device 103-1 transmits notification 801 in response todetermining that second device 103-2 is active (i.e. a “Yes” decision atblock 505). However, when no device 103 is active, block 505 does notoccur, a notification of call 601 is not transmitted to second device103-2 (i.e. a “No” decision at block 505) and method 500 ends.

Device 103-2 receives notification 801 and in response displays and/orrenders a notification of call 801 at display 224, for example in a GUI(graphic user interface) 901 as depicted in FIG. 9 (“A call is beingreceived at your Tablet Device”). In some implementations, when device103-1 is proximal to device 103-2, user 712 can move to device 103-1, asdepicted in FIG. 8, and cause device 103-1 to answer call 601: forexample, input data for answering call 601 is received at input device200.

In some alternative implementations, as also depicted in FIG. 8, device103-1 further: answers call 601, places call 601 on hold; and transmitsa second notification 803 to calling device 101, second notification 803indicative of one or more of call 601 being placed on hold and a waitperiod for answering call 601 and the like. For example, call 601 can beanswered, placed on hold, and notification 803 can be transmitted,notification 803 comprising an indication of one or more of instructionsfor waiting and a wait period for answering the call. For example,notification 803 can comprise one or more of an audio message and avisual message indicating that device 103-1 is trying to locate user 712to take call 601, and an indication of a given wait time, such as a fewminutes and the like. When call 601 is not answered within the givenwait time, call 601 can be redirected to a voicemail system, either atdevice 103-1 or in network 107.

Alternatively, as also depicted in FIG. 9, in non-limiting examplelimitations, receipt of notification 801 at device 103-2 further causedevice 103-2 to provide a selectable option 903 (“REDIRECT CALL”) fortransferring call 601 to device 103-2. Selectable option 903 cancomprise a virtual button and the like. As depicted in FIG. 10, uponreceipt of input data at input device 300 indicative of a selection ofselectable option 903, device 103-2 transmits a signal 1001 to aswitching element (not depicted) network 107, causing the switchingelement to redirect call 601 from device 103-1 to device 103-2.

Consider now implementations where call 601 comprises a video call anddevice 103-2 is active, but device 103-2 may or may not be capable ofhandling call 601. For example, while device 103-2 can comprise a videocamera 330, device 103-2 may not be capable of acquiring video data in avideo call due to processing capabilities and the like and/or a locationof video camera 330 at device 103-2 (e.g. when video camera 330 islocated at a side opposite display 324, device 103-2 cannotsimultaneously capture a video of user 712 and provide video at display324 visible to user 712).

Hence, attention is directed to FIG. 11, which depicts an alternatemethod 1100 that can be implemented in system 100. Method 1100 issubstantially similar to method 500, with like blocks having likenumbers, however preceded by “11” rather than “5”. For example, at block1101, a first device 103-1 receives call 601 similar to block 501. Atblock 1103, a determination is made as to whether device 103-1 isactive; if so, call 601 is answered at device 103-1 and method 1100 endsat block 1104, otherwise at block 1105 device 103-1 determines whether asecond device 103-2 is active.

Presuming device 103-2 is active, at block 1106 a, device 103-1determines the capability of active device 103-2. For example, data 218can further store capability data of devices 103, including but notlimited to device 103-2. Alternatively, data 703 can comprise capabilitydata of device 103-2. Hence, query 701 can further comprise a requestfor capability of devices 103-2, 103-3.

Hence, for example, when call 601 comprises a video call, and device103-1 determines that device 103-2 is active, device 103-1 can determineone or more of: whether device 103-2 can handle a video call; whetherdevice 103-2 comprises video camera 330; a location of video camera 330at device 103-2 (whether video camera 330 can acquire video dataproximal display 324); and whether video camera 330 is enabled for videocalling. However, device 103-1 may simply determine “Yes” (and thelike), device 103-2 can handle video calls, or “No” (and the like),device 103-3 cannot handle video calls without determining details ofwhy or why not device 103-2 can handle video calls.

However, in some non-limiting implementations, at block 1106 a, device103-1 can determine whether active device 103-2 can handle a video callby processing data 218. In these implementations, data 218 can comprisethe contents of Table 1, or the like:

TABLE 1 Device Audio Call Video Call Identifier of 103-2 Yes YesIdentifier of 103-3 Yes No

While Table 1 is arranged in rows and columns, it is appreciated thatTable 1 can be arranged in any suitable format. Further, Table 1comprises a network identifier of each of devices 103-2, 103-3, asdescribed above, and an indication of capabilities of each of devices103-2, 103-3, specifically whether each of devices 103-2, 103-3 canhandle audio calls and video calls. For example, as indicated in Table1, device 103-2 can handle both audio calls and video calls; however,device 103-3 can handle audio calls but not video calls.

From Table 1, it is further appreciated that when a voice call isreceived at device 103-1, and device 103-1 subsequently determines thatboth devices 103-2, 103-3 are active, but only device 103-2 is capableof handling voice calls, then device 103-2 is notified of the voicecall.

It is further appreciated that in implementations where data 218comprises Table 1, data 218 has been previously provisioned, for examplefrom previous capability data received from each of devices 103-2,103-3, for example when device 103-1 first communicated with each ofdevices 103-2, 103-3 and/or when devices 103 were associated with oneanother.

In any event, at block 1106 b, device 103-1 determines whether seconddevice 103-1 is capable of handling call 601; if not (a “No” decision atblock 1106 b), method 1100 ends at block 1104 and call 601 can beredirected to a voicemail system or the like. However, when seconddevice 103-2 is capable of handling call 601, at block 1107, anotification of call 601 is transmitted to second device 103-2. In someimplementations, an option to transfer call 601 to device 103-2 isprovide as depicted in FIG. 9; as it has already been determined thatdevice 103-2 is capable of handling call 601, no technical issues shouldoccur when call 601 is transferred to device 103-2. On the other hand,if blocks 1106 a, 1106 b did not occur, and device 103-2 was not capableof handling call 601, and call 601 was transferred to device 103-2, thentechnical issues with call 601 would be introduced. In other words, bydetermining technical capabilities of device 103-2 before devices 103-2is notified of call 601, technical problems that could be introducedwhen transferring call 601 to device 103-2 are obviated and indeedavoided.

Hence, in some implementations, device 103-1 is generally enabled totransmit query 701 to at least second device 103-2 to determine bothwhether device 103-2 is active and to request capabilities of device103-2; further more, device 103-1 is enabled to transmit notification801 of call 601 to device 103-2 when a response to query 701 (i.e. data703) is indicative that device 103-2 is capable of handling call 601.

In yet further implementations, device 103-2 is enabled to: determinethat device 103-2 is both active and capable of processing call 601;and, transmit notification 801 of the call to device 103-2 when device103-2 is both active and capable of processing call 601.

It is further appreciated that blocks 1105, 1106 a, 1106 b can occur inparallel and/or in one block. In other words, device 103-1 can beenabled to determine both whether device 103-2 is active and capable ofhandling call 601 in a generally simultaneous manner, and furtherdetermine whether device 103-2 is capable of handling call 601 whendetermining capability of device 103-2. Hence, blocks 1106 a, 1106 b canalso occur in parallel and/or in one block. Further blocks 1105, 1106 a,1106 b can occur in any given order. For example, device 103-1 candetermine capability of device 103-2 before determining whether device103-2 is active; if device 103-2 is not capable of handling call 103-2,then method 1100 can end before a determination of activity at device103-2.

It is yet further appreciated that one or more of method 500 and method1100 can be implemented in alternatives to system 100. For exampleattention is next directed to FIG. 12, which depicts a system 100 a,substantially similar to system 100 with like elements having likenumbers, however with an “a” appended thereto. Hence, system 100 acomprises a device 101 a enabled to communicate with at least one of aplurality of communication devices 103 a-1, 103 a-3, via link 106 a, acommunication network 107 a, and respective links 108 a-1, 108 a-3.Further system 100 a comprises device 103 a-2 in communication withdevice 103 a-1 via a link 1203. It is assumed in FIG. 12 that device 103a-2 is active (e.g. user 712 a is using device 103 a-2). Link 1208 cancomprise any suitable link, including but not limited to a cell phonelink, an NFC link, a Bluetooth™ link, a WiFi link, a WiMax link and thelike. In other words, when device 103 a-1 receives call 601 a anddetermines that device 103 a-2 is active (and alternatively capable ofhandling call 601 a), device 103 a-1 transmits a notification 1203 todevice 103 a-2, for example using link 1208. Notification 1203 can besimilar to notification 801.

As further depicted in FIG. 12, device 103 a-2 can alternatively be incommunication with network 107 a via an optional link 1209. For example,in these implementations, link 1208 can comprise an NFC link, such as aBluetooth™ link, while link 1209 comprise a cellphone link. Device 103a-1 can determine which of links 1208, 1209 to transmit notification1203; in some implementation the cheaper and/or most efficient of links1208, 1209 is chosen to transmit notification 1203. Further when anoption to transfer call 601 a to device 103 a-2 is selected, call 601 acan be redirected to device 103 a-2 via link 1208 (i.e. via device 103a-1) or via link 1209.

Attention is next directed to FIG. 13, which depicts a system 100 b,substantially similar to system 100 with like elements having likenumbers, however with a “b” appended thereto. Hence, system 100 bcomprises a device 101 b enabled to communicate with at least one of aplurality of communication devices 103-1 b, 103 b-2, 103 b-3, via link106 b, a server 107 b, and respective links 108 b-1, 108 b-2, 108 b-3.It is assumed in FIG. 13 that device 103 b-2 is active (e.g. user 712 bis using device 103 b-2). Devices 103 b-1, 103 b-2, 103 b-3 will also bereferred to hereafter generically as a device 103 b, and collectively asdevices 103 b. Furthermore, links 108 b-1, 108 b-2, 108 b-3 will also bereferred to hereafter generically as a link 108 b, and collectively aslinks 108 b.

Server 107 b can be based on any well-known server environment includinga module that houses one or more central processing units, volatilememory (e.g. random access memory), persistent memory (e.g. hard diskdevices) and network interfaces to allow server 107 b to communicateover links 106 b, 108 b. For example, server 107 b can comprise a SunFire V480 running a UNIX operating system, from Sun Microsystems, Inc.of Palo Alto Calif., and having four central processing units eachoperating at about nine-hundred megahertz and having about sixteengigabytes of random access memory. However, it is to be emphasized thatthis particular server is merely exemplary, and a vast array of othertypes of computing environments for servers 107 b are contemplated. Itis further more appreciated that server 107 b can comprise any suitablenumber of servers that can perform different functionality of serverimplementations described herein. Functionality of server 107 b will bedescribed in further detail below.

Server 107 b generally comprises a switching element in a communicationnetwork, such as network 107. For example server 107 b can comprise aPBX (private branch exchange) and/or VoIP (Voice over Internet Protocol)server for switching and/or managing calls to devices 103. For example,server 107 b can store an association between devices 103 b in the formof data similar to data 218, 318, 418.

One or more of methods 500, 1100 can be implemented at server 107 b, forexample using a stored association between devices 103 b. Hence, server107 b comprises a processor generally enabled to receive a call for afirst device 103 b-1; determine that a second device 103 b-2 is active;and transmit a notification 1301 of call 601 b to second device 103 b.Server 107 b can transfer call 601 b to second device 103 b-2 whensecond device 103 b-2 is active and first device 103 b-1 is inactive.Hence, server 107 b is generally enabled to communicate with at leastfirst device 103 b-1 and second device 103 b-1; and, transfer call 601 bto one or more of first device 103 b-1 and second device 103 b-2.

Hence, implementations described herein address situations where a usermay have several devices and a user's active and/or preferred device isto be notified when a call, including but not limited to a video call, avideo chat, and the like, is received at one of the user's otherdevices. For example, when a call (e.g. a video call) arrives at a firstdevice, a call notification can be transmitted to an associated activedevice. A determination can be made as to whether the device to benotified is actively used and optionally whether the device is capableof handling the call. All of the associated devices are identifiedthrough network identifiers. Therefore, when a call is received at afirst device, a link (e.g. a connection such as local link, Bluetooth™,WiFi, a cellular connection) between the first device and an associatedsecond device is used to send a real time notification to the activedevice. For example: a video call may arrive on a user's tablet but theuser is currently using a handheld device and is not aware of the call;and/or a video call may arrive on a user's handheld device but thehandheld does not have a front facing camera. In this case the userstablet can be notified.

Further, in these scenarios the device receiving the call can detect anddetermine which is the best available network technology to use for thecall and leverage selected network technology to notify the activedevice of the call by sending a real time notification, for exampleusing IP (internet protocol) Messaging to the active device e.g. usingTransport Layer Security (TLS) (and/or to other active device(s) asappropriate).

Those skilled in the art will appreciate that in some implementations,the functionality of devices 103, 103 a, 103 b, and server 107 b can beimplemented using pre-programmed hardware or firmware elements (e.g.,application specific integrated circuits (ASICs), electrically erasableprogrammable read-only memories (EEPROMs), etc.), or other relatedcomponents. In other implementations, the functionality of devices 103,103 a, 103 b, and server 107 b can be achieved using a computingapparatus that has access to a code memory (not shown) which storescomputer-readable program code for operation of the computing apparatus.The computer-readable program code could be stored on a computerreadable storage medium which is fixed, tangible and readable directlyby these components, (e.g., removable diskette, CD-ROM, ROM, fixed disk,USB drive). Furthermore, it is appreciated that the computer-readableprogram can be stored as a computer program product comprising acomputer usable medium. Further, a persistent storage device cancomprise the computer readable program code. It is yet furtherappreciated that the computer-readable program code and/or computerusable medium can comprise a non-transitory computer-readable programcode and/or non-transitory computer usable medium. Alternatively, thecomputer-readable program code could be stored remotely buttransmittable to these components via a modem or other interface deviceconnected to a network (including, without limitation, the Internet)over a transmission medium. The transmission medium can be either anon-mobile medium (e.g., optical and/or digital and/or analogcommunications lines) or a mobile medium (e.g., microwave, infrared,free-space optical or other transmission schemes) or a combinationthereof.

A portion of the disclosure of this patent document contains materialwhich is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction by any one of the patentdocument or patent disclosure, as it appears in the Patent and TrademarkOffice patent file or records, but otherwise reserves all copyrightswhatsoever.

Persons skilled in the art will appreciate that there are yet morealternative implementations and modifications possible, and that theabove examples are only illustrations of one or more implementations.The scope, therefore, is only to be limited by the claims appendedhereto.

1. (canceled)
 2. A communication device comprising: a processor and acommunication interface, the processor enabled to: receive a call viathe communication interface; determine whether the communication deviceis active, wherein the communication device is determined to be activeif one or more of: the call is answered at the communication device, anactivity at an input device of the communication device is indicated,and a motion is detected, and wherein otherwise the communication deviceis determined to be inactive; when the communication device is inactive,determine that a second device is active by transmitting a query to thesecond device and receiving a response thereto from the second device;and transmit a notification of the call to the second device fortransferring the call to the second device.
 3. The communication deviceof claim 2, wherein the processor is further enabled to determine thatthe second device is active by receiving an indication of activity fromthe second device.
 4. The communication device of claim 2, wherein thequery comprises a request for capabilities of the second device and theprocessor is further enabled to transmit the notification of the call tothe second device when the response is indicative that the second deviceis capable of processing the call.
 5. The communication device of claim2, wherein the processor is further enabled to: determine that thesecond device is both active and capable of handling the call; andtransmit the notification of the call to the second device when thesecond device is both active and capable of handling the call.
 6. Thecommunication device of claim 2, wherein the processor is furtherenabled to: place the call on hold; and transmit a second notificationto a calling device, the second notification indicative of one or moreof instructions for waiting and a wait period for answering the call. 7.The communication device of claim 2, wherein the processor is furtherenabled to transmit the query to the second device over a peer-to-peerprotocol.
 8. The communication device of claim 2, wherein the processoris configured to determine if the call is a video call, determine if thecommunication device has a front facing camera, and transmit thenotification to the second device if it is determined that thecommunication device does not have a front facing camera.
 9. A methodcomprising: at a communication device comprising a processor and acommunication interface, receiving a call for the communication devicevia the communication interface; determining, at the processor, whetherthe communication device is active, wherein the communication devicedetermined to be active if one or more of: the call is answered at thecommunication device, an activity at an input device of thecommunication device is indicated, and a motion is detected, and whereinotherwise it is determined that the communication device is inactive;determining, at the processor, that a second device is active; when thecommunication device is inactive, determining that a second device isactive by transmitting a query to the second device and receiving aresponse thereto from the second device; and transmitting a notificationof the call to the second device for transferring the call to the seconddevice.
 10. The method of claim 9, further comprising determining thatthe second device is active by receiving an indication of activity fromthe second device.
 11. The method of claim 9, wherein the querycomprises a request for capabilities of the second device and the methodfurther comprises transmitting the notification of the call to thesecond device when the response is indicative that the second device iscapable of processing the call.
 12. The method of claim 9, furthercomprising: determining that the second device is both active andcapable of handling the call; and transmitting the notification of thecall to the second device when the second device is both active andcapable of handling the call.
 13. The method of claim 9, furthercomprising: placing the call on hold; and transmitting a secondnotification to a calling device, the second notification indicative ofone or more of instructions for waiting and a wait period for answeringthe call.
 14. The method of claim 9, further comprising transmitting thequery to the second device over a peer-to-peer protocol.
 15. The methodof claim 9, further comprising determining if the call is a video call,determining if the communication device has a front facing camera, andtransmitting the notification to the second device if it is determinedthat the communication device does not have a front facing camera.
 16. Anon-transitory computer-readable medium storing a computer program,wherein execution of the computer program is for: at a communicationdevice comprising a processor and a communication interface, receiving acall for the communication device via the communication interface;determining, at the processor, whether the communication device isactive, wherein the communication device determined to be active if oneor more of: the call is answered at the communication device, anactivity at an input device of the communication device is indicated,and a motion is detected, and wherein otherwise it is determined thatthe communication device is inactive; determining, at the processor,that a second device is active; when the communication device isinactive, determining that a second device is active by transmitting aquery to the second device and receiving a response thereto from thesecond device; and transmitting a notification of the call to the seconddevice for transferring the call to the second device.
 17. Thenon-transitory computer-readable medium of claim 16, wherein executionof the computer program is further for: determining that the seconddevice is active by receiving an indication of activity from the seconddevice.
 18. The non-transitory computer-readable medium of claim 16,wherein the query comprises a request for capabilities of the seconddevice and the method further comprises transmitting the notification ofthe call to the second device when the response is indicative that thesecond device is capable of processing the call.
 19. The non-transitorycomputer-readable medium of claim 16, wherein execution of the computerprogram is further for: determining that the second device is bothactive and capable of handling the call; and transmitting thenotification of the call to the second device when the second device isboth active and capable of handling the call.
 20. The non-transitorycomputer-readable medium of claim 16, wherein execution of the computerprogram is further for: placing the call on hold; and transmitting asecond notification to a calling device, the second notificationindicative of one or more of instructions for waiting and a wait periodfor answering the call.
 21. The non-transitory computer-readable mediumof claim 16, wherein execution of the computer program is further for:determining if the call is a video call, determining if thecommunication device has a front facing camera, and transmitting thenotification to the second device if it is determined that thecommunication device does not have a front facing camera.